<?php
class TipoProdutoModel extends Database {
    
    const TABLE = "tipo_produto";
    
    const ID = "id";
    const NOME = "nome_tipo_produto";
    
    public function select($fields = " * ", $condition = null, $limit = null) {
        if(is_array($fields)) $fields = implode(",", $fields);
        $res = parent::select(self::TABLE, $fields, $condition, $limit);		
        $ana = $this->getAnnalisses();		
        $tipos = array();
        while(($row = $ana->fetchObject($res)) !== false) {
           $tipos[] = new TipoProduto(  isset($row->{self::ID})? $row->{self::ID} : 0, 
                                        isset($row->{self::NOME})? ($row->{self::NOME}): "");	
        }
        return $tipos;
    }
    
    public function insert(TipoProduto $tipo) {
        $values = get_object_vars($tipo);
        unset($values["id"]);
        $fields = implode(",", array(self::NOME));
        return parent::insert(self::TABLE, $fields, Database::turnInValues($values));
    }


    public function update(TipoProduto $tipo){
        return parent::update(self::TABLE, self::NOME, "'{$tipo->nome}'", self::ID." = ".$tipo->id);
    }
    
    public function delete($id_tipo){
        return parent::delete(self::TABLE, self::ID." = $id_tipo");
    }
    
    public function handleError() {
        $err_code = $this->errorCode(); 
        if($err_code == Annalisses::ERR_DUPLICATE) 
            return "Já existe um tipo de produto com este nome";
        return parent::handleError();
    }
}
?>
